In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Dane jest wyrażenie matematyczne , w którym występują:
stałe od 0 do 9, zmienne od
do
,
a także operacje: dodawania, mnożenia i potęgowania o stałym wykładniku.
Co ciekawe, każda ze zmiennych
występuje w wyrażeniu
co najwyżej raz.
Zastanawiamy się, dla danej liczby pierwszej
, ile pierwiastków modulo
ma wielomian wyznaczony przez to wyrażenie.
Innymi słowy, pytamy, ile jest podstawień liczb od
do
pod zmienne występujące w
, dla których wartość wyrażenia
jest podzielna przez
.
Ponieważ szukana liczba pierwiastków może być duża, wystarczy nam reszta z jej dzielenia
przez
.
Przykładowo, wielomian reprezentowany przez wyrażenie
ma 15 pierwiastków modulo , m.in. następujące trzy pierwiastki:
Formalnie, wyrażenie definiujemy następująco:
Pierwszy wiersz wejścia zawiera jedną liczbę pierwszą
(
).
Drugi wiersz zawiera wyrażenie
zgodne z podaną specyfikacją, opisane przez
ciąg złożony z co najwyżej 300 znaków
0, 1, ..., 9, a, b, ..., z,
+, *, ^,
(, ).
W podanym ciągu nie występują odstępy.
Oznaczmy przez liczbę pierwiastków modulo
wielomianu
.
Twój program powinien wypisać jedną nieujemną liczbę całkowitą: resztę z dzielenia
przez
.
Dla danych wejściowych:
3 (((a+y)*(z+8))^2)
poprawną odpowiedzią jest:
15
Autor zadania: Jakub Radoszewski.